htt[p]erl, simulador de web server
Publicado por Fábio Berbert de Paula 06/01/2003
[ Hits: 8.128 ]
Homepage: https://fabio.automatizando.dev
htt[p]erl é um script usado para simular um servidor web, muito bom para quem deseja entender melhor o protocolo de comunicação entre browser e servidor. O programa fica escutando na porta TCP 80 e envia uma página HTML padrão para o browser do usuário.
#!/usr/bin/perl
# ---------------------------------------------------------
# httperl.pl (htt[p]erl)
#
# Script em Perl usado para simular um servidor web, muito
# bom para quem deseja entender melhor o protocolo de
# comunicação entre browser e servidor
#
#
# Programado por Fábio Berbert de Paula
# <fabio@vivaolinux.com.br>
#
# Rio de Janeiro, 06 de Janeiro de 2003
# ---------------------------------------------------------
$| = 1;
# criar socket na porta 80 do servidor
use IO::Socket;
my $sock = new IO::Socket::INET (
LocalPort => '80',
Type => SOCK_STREAM,
Proto => 'tcp',
Listen => 10
);
die "Não consegui iniciar o servidor: $!\n" unless $sock;
print "Servidor iniciado ...\n";
# definir o cabeçalho de retorno básico
my $retorno = "
HTTP/1.1 200 OK
Server: htt[p]erl/1.0 (GNU/Linux)
Connection: close
Content-Type: text/html
<html>
<body>
Uma cortesia de <a href=\"http://www.vivaolinux.com.br\">Viva o Linux</a>.
</body>
</html>
";
# aceitar conexões TCP
while (my $new_sock = $sock->accept()) {
while($linha = <$new_sock>) {
# imprimir o cabeçalho recebido pelo browser do usuário
print $linha;
# se linha vazia, então o browser envio câmbio, vamos respondê-lo
if ($linha!~/[A-Za-z0-9]/) {
print $new_sock $retorno;
# fechar conexão com o cliente
$new_sock = '';
}
}
close(W);
}
close($sock);
Calculadora de notas versão Perl
Nenhum comentário foi encontrado.
librePods: liberte seus AirPods em 2026
Bluefin - A nova geração de ambientes de trabalho Linux
Como atualizar sua versão estável do Debian
Configurar aviso da temperatura da CPU no Conky
Pós-instalação do elementary OS 8.1
Quer auto-organizar janelas (tiling) no seu Linux? Veja como no Plasma 6 e no Gnome
Copiando caminho atual do terminal direto para o clipboard do teclado
Conky não mostra temperaturas da CPU no notebook (14)
Registro do 'last&qu... errado [RESOLVIDO] (9)
O WiFi não reconhece minha rede depois que o processo de suspensão é r... (2)









